/*
 * AJAX异步技术
 * 
 * 创建日期：2014.08.20
 * 作者：hmb
 * 
 * 备注：包含了创建XMLHttpRequest对象和发动请求的函数，
 *      对于需要采用Ajax异步技术的页面都需要引用此文件并调用sendRequest方法。
 *      可以（也推荐）使用jquery的ajax方法则不需要这个
 */

//声明XMLHttpRequest 对象
var httpRequest = null;

// 创建XMLHttpRequest对象实例的方法
function createXHR() {
	try {
		httpRequest = new XMLHttpRequest();
	} catch (e) {
		// TODO: handle exception
		var _msxmlhttp = new Array("Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.5.0",
				"Msxml2.XMLHTTP.4.0", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP",
				"Microsoft.XMLHTTP");
		for ( var i = 0; i < _msxmlhttp.length; i++) {
			try {
				httpRequest = new ActiveXObject(_msxmlhttp[i]);
				if (httpRequest != null) {
					break;
				}
			} catch (e) {
				// TODO: handle exception
			}
		}
	}
	if (httpRequest == null) {
		alert("不能创建Ajax对象！");
	}
}

// 发送客户端的请求，该方法有4个参数，其中method取值为POST或GET,callback为响应函数
function sendRequest(url, params, method, callback) {
	createXHR();// 注意这里已经调用了上面的函数
	if (!httpRequest) {
		return false;
	}
	httpRequest.onreadystatechange = function() {
		if (httpRequest.readyState == 4) {
			if (httpRequest.status == 200) {
				callback();
			}
		}
	};// 指定响应函数为callback

	if (method == "GET") {
		httpRequest.open(method, url + '?' + params, true);
		httpRequest.send(null);
	}
	if (method == "POST") {
		httpRequest.open(method, url, true);
		httpRequest.setRequestHeader("Content-type",
				"application/x-www-form-urlencoded");
		httpRequest.send(params);
	}
}

